package com.clyme.expediente.controlador;

import com.clyme.expediente.entidad.Etapa;
import com.clyme.expediente.servicios.EtapaServicio;
import com.clyme.expediente.utilitarios.Utilitario;
import java.io.Serializable;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

/**
 *
 * @author SAM
 */
@ManagedBean(name = "etapaControlador")
@ViewScoped
public class EtapaControlador implements Serializable{

    private Etapa etapaTrabajo;
    private List<Etapa> etapas;
    private EtapaServicio etapaServicio;

    public EtapaControlador() {
    }

    public void initLista() {
        if (!FacesContext.getCurrentInstance().isPostback()) {
            etapaServicio = new EtapaServicio();
            etapas = etapaServicio.obtenerTodos();
        }
    }

    public void initRegistrar() {
        if (!FacesContext.getCurrentInstance().isPostback()) 
        {
            etapaTrabajo = new Etapa();
            etapaServicio = new EtapaServicio();
        }
    }

    public void initUpdate() {
        if (!FacesContext.getCurrentInstance().isPostback())
        {
            Object parametro = Utilitario.getFlash("idEtapa");
            if (parametro == null) {
                Utilitario.redireccionarJSF(FacesContext.getCurrentInstance(), "/views/etapa/list.xhtml");
                return;
            }
            etapaServicio = new EtapaServicio();
            etapaTrabajo = etapaServicio.obtenerEtapa(Integer.valueOf(parametro.toString()));
        }
    }
    
    public void prepararEliminar(Integer id)
    {
        etapaTrabajo = etapaServicio.obtenerEtapa(id);
    }
    
    public void registrarEtapa()
    {
       if(!esVistaValida()){
           return;
       }
       etapaServicio.registrarEtapa(etapaTrabajo);
       etapaTrabajo = new Etapa();
    }
    
    public String irActualizar(int id)
    {
        Utilitario.putFlash("idEtapa", id);
        return "update.xhtml?faces-redirect=true";
    }
    
    public void actualizarEtapa()
    {
        if(!esVistaValida())
        {
            return;
        }
        etapaServicio.actualizarEtapa(etapaTrabajo);
    }
    
    public void eliminarEtapa(){
        etapaServicio.eliminarEtapa(etapaTrabajo);
        etapas = etapaServicio.obtenerTodos();
    }
    
    private boolean esVistaValida()
    {
        boolean ok = true;
        return ok;
    }

    public Etapa getEtapaTrabajo() {
        return etapaTrabajo;
    }

    public void setEtapaTrabajo(Etapa etapaTrabajo) {
        this.etapaTrabajo = etapaTrabajo;
    }

    public List<Etapa> getEtapas() {
        return etapas;
    }

    public void setEtapas(List<Etapa> etapas) {
        this.etapas = etapas;
    }

    
    
    
}
